package com.hydra.file.services;


import com.hydra.file.entity.SysFile;

import java.io.InputStream;

public interface FileService {

	/**
	 * 下载文件
	 * @param url   网络文件全路径
	 * @return 文件保存的路径
	 */
	String downloadFile(String url, SysFile sysFile) throws Exception;


	/**
	 * 保存文件文件
	 * @param is 		输入流
	 * @param sysFile 	保存的文件
	 * @return 文件保存的路径
	 */
	String persistFile(InputStream is, SysFile sysFile) throws Exception;

	/**
	 * 组装文件
	 * @param url   	网络文件全路径
	 * @param fileName	文件名，为空，表示需要设置为uuid
	 * @return 文件保存的路径
	 */
	SysFile createSysFile(String url, String fileName, String fileSuffix, String filePath, String type);

	/**
	 * 获取文件本地
	 */
	byte[] getSysFileAsBytes(Long id);

	/**
	 * 删除文件
	 */
	SysFile deleteSysFile(Long id);

	/**
	 * 检查文件是否存在
	 */
	boolean moveFileOrDelete(Long id, boolean delete, String remark, String movePath);
}
